//
//  ZzEmotionKeyboardView.swift
//  EmojiView
//
//  Created by 张少霞 on 16/5/30.
//  Copyright © 2016年 zsx. All rights reserved.
//

import UIKit
//导入设置frame的第三方框架
//设置键盘高度为 220   工具栏的高度为37
private let toolbarHeight: CGFloat = 37
private let keyboardViewHeight: CGFloat = 220
//重用标识
private let emotionCellId = "emotionCellId"



import SnapKit

class ZzEmotionKeyboardView: UIView {

    
    override init(frame: CGRect) {
        //在视图内部制定frame
        let rect = CGRect(x: 0, y: 0, width: 0, height: keyboardViewHeight
        )
        
        super.init(frame: rect)

//        调用添加UI的方法
        setupUI()
    }
    
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

//   2 添加控件
    private func setupUI() {
    
//       设置背景颜色
//        backgroundColor = UIColor.yellowColor()
//        添加toolBar
        addSubview(toolbar)
//        添加collectionView
    addSubview(collectionView)
        
//     设置约束
        toolbar.snp_makeConstraints { (make) in
            make.left.right.bottom.equalTo(self)
            make.height.equalTo(toolbarHeight)
            
        }
        collectionView.snp_makeConstraints { (make) in
            
            make.top.left.right.equalTo(self)
            make.bottom.equalTo(toolbar.snp_top)
        }
        
//      实现闭包回调
        //实现闭包
        toolbar.selectedIndexCallBack = { (index: Int) -> () in
            print(index)
            //滚动collectionView
            let indexPath = NSIndexPath(forItem: 0, inSection: index)
            self.collectionView.scrollToItemAtIndexPath(indexPath, atScrollPosition: .Left, animated: false)
        }

    }
//    1.懒加载控件
//    添加工具栏
    private lazy var toolbar: ZzEmotioonToolBar = ZzEmotioonToolBar()
//  添加显示表情的collectionView
    
    private lazy var collectionView: UICollectionView = {
//    首先需要设置流水不仅
        let layout = UICollectionViewFlowLayout()
        
//        设置布局方向 水平
        layout.scrollDirection = .Horizontal
//        设置间距 
        layout.minimumLineSpacing = 0
        layout.minimumInteritemSpacing = 0
//        设置itemSize 宽=屏幕的宽  高=键盘的高 - 工具栏的高
        layout.itemSize = CGSize(width: UIScreen.mainScreen().bounds.width, height: keyboardViewHeight - toolbarHeight)
        
        let cv = UICollectionView(frame: CGRectZero, collectionViewLayout: layout)
//        数据源代理  需要遵守协议  在分类中实现
        cv.dataSource = self
//        注册cell  自定义cell
        cv.registerClass(EmotionPageCell.self, forCellWithReuseIdentifier: emotionCellId)
//    设置分页滚动
        cv.pagingEnabled = true
//        取消弹簧效果
        
        cv.bounces = false

        return cv
    
    }()
  
 }

//扩展中遵守数据源协议
extension ZzEmotionKeyboardView: UICollectionViewDataSource{

//实现协议方法  第一个有几组
    func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int {
        
        return 3
    }
    
//    每组有几个
    func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
        return 2
    }
    
    
//    具体的cell 显示什么
    func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
//        强制转换为自定义cell
        let cell = collectionView.dequeueReusableCellWithReuseIdentifier(emotionCellId, forIndexPath: indexPath) as!EmotionPageCell
        
//        设置cell的颜色是随机的
        cell.backgroundColor = randomColor()
        
//      “？？？？？  这里需要cell的indexpath》》》》》  把indextpath 传过来
        cell.indexPath = indexPath
        
        
        return cell
        
        
    }
    
    

}


















